package member.model.service;

import java.sql.SQLException;
import java.util.List;

import member.domain.Member;
import member.exception.DuplicatedIdException;
import member.model.dao.MemberDAO;
//회원 관리 Business Logic을 처리하는 Business Service 클래스
public class MemberServiceImpl implements MemberService {
	
	private MemberDAO dao;
	public MemberServiceImpl(MemberDAO dao){
		this.dao = dao;
	}
	
	//가입처리 메소드
	@Override
	public void joinMember(Member member) throws SQLException, DuplicatedIdException{
		//1. 등록된 ID가 있는 지 체크
		//    - 이미 등록된 ID라면 DuplicatedIdException를 발생 시킨다.
		if(dao.selectMemberById(member.getId())!=null){
			throw new DuplicatedIdException(member.getId()+"는 이미 등록된 아이디입니다. ID를 변경하세요");
		}
		//2. 디비에 회원정보 등록 처리
		dao.insertMember(member);
	}
	//회원 정보 수정
	@Override
	public void modifyMember(Member member) throws SQLException{
		dao.updateMember(member);
	}
	//회원 삭제
	@Override
	public void removeMemberById(String id) throws SQLException {
		dao.deleteMemberById(id);
	}
	//전체 회원 목록 조회
	@Override
	public List<Member> getMemberList() throws SQLException{
		return dao.selectMemberList();
	}
	//ID로 회원 조회
	@Override
	public Member getMemberById(String id) throws SQLException{
		return dao.selectMemberById(id);
	}
	//이름으로 회원 조회
	@Override
	public List<Member> searchMemberByName(String name) throws SQLException{
		return  dao.selectMemberByName(name);
	}
	
}

















